#include <cs50.h>
#include <stdio.h>

int Error(int n);
void pyramid(int n);
void space(int n);
void block(int n);

int main()
{
    int i = 1;
    int input = 1;
    int storey = 1;

    for (i = 1; i < 2; i++)
    {
        // 获取层数
        storey = get_int("How tall the pyramids (1-8)? \n");

        // 错误检测
        input = Error(storey);
        if (input == 1)
        {
            i = 0;
        }
    }

    pyramid(storey);
}

int Error(int n)
{
    if (n >= 1 && n <= 8)
    {
        return 0;
    }

    return 1;
}

// 针对双边双块自定义+层数
void pyramid(int n)
{
    int i = 1; // 控制循环

    // 使用block打印本层并对层次做递进管理
    for (i = 1; i <= n; i++)
    {

        space(n - i);
        block(i);
        printf("  ");
        block(i);
        printf("\n");
    }
}

// 每层方块上的空格处理
void space(int n)
{
    int i = 1;

    for (i = 0; i < n; i++)
    {
        printf(" ");
    }
}

// 针对单边单层单块自定义
void block(int n)
{
    int i = 1;

    for (i = 1; i <= n; i++)
    {
        printf("#");
    }
}
